import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
import {
  BsDropdownModule,
  ModalModule,
  TabsModule,
  TooltipModule,
} from "ngx-bootstrap";
import { AppCommonModule } from "@app/shared/common/app-common.module";
import { UtilsModule } from "@shared/utils/utils.module";
import { CountoModule } from "@node_modules/angular2-counto";
import { EasyPieChartModule } from "ng2modules-easypiechart";
import {
  CheckboxModule,
  DataTableModule,
  DialogModule,
  MenubarModule,
  SpinnerModule,
} from "primeng/primeng";
import { PaginatorModule } from "primeng/primeng";
import { TreeTableModule } from "primeng/primeng";
import {
  InputTextModule,
  CalendarModule,
  InputSwitchModule,
  MultiSelectModule,
  DropdownModule,
} from "primeng/primeng";
import { TableModule } from "primeng/components/table/table";
import { PipelineRoutingModule } from "@app/pipeline/pipeline-routing.module";
import { StepsComponent } from "@app/pipeline/step/step.component";
import { FlexsComponent } from "@app/pipeline/flex/flex.component";
import { WarningTimeModalComponent } from "@app/pipeline/flex/warning-time-modal.component";
import { FlexItemComponent } from "@app/pipeline/flex/flex-item.component";
import { ActAbnormalModalComponent } from "@app/pipeline/step/act-abnormal-modal.component";
import { ActBaseModalComponent } from "@app/pipeline/shared/act-base.component";
import { GY1ModalComponent } from "@app/pipeline/shared/工艺类/正常节点/gy1.component";
import { RW2ModalComponent } from "@app/pipeline/shared/任务类/正常节点/rw2.component";
import { ZL1ModalComponent } from "@app/pipeline/shared/质量类/正常节点/zl1.component";
import { ZL11ModalComponent } from "@app/pipeline/shared/质量类/正常节点/zl11.component";
import { YL2ModalComponent } from "@app/pipeline/shared/原材料类/正常节点/yl2.component";
import { YL10ModalComponent } from "@app/pipeline/shared/原材料类/正常节点/yl10.component";
import { GXZXModalComponent } from "@app/pipeline/shared/工序执行类/正常节点/gxzx.component";
import { YL2OutModalComponent } from "@app/pipeline/shared/原材料类/正常节点/yl2-out-modal.component";
import { YL10ChildModalComponent } from "@app/pipeline/shared/原材料类/正常节点/yl10-modal.component";
import { RW3ModalComponent } from "@app/pipeline/shared/任务类/正常节点/rw3.component";
import { ActCommmonModalComponent } from "./shared/act-common.component";
import { GY21ModalComponent } from "./shared/工艺类/正常节点/gy21.component";
import { YL13ModalComponent } from "./shared/原材料类/正常节点/yl13.component";
import { GY24ModalComponent } from "./shared/工艺类/正常节点/gy24.component";
import { RW21ModalComponent } from "./shared/任务类/正常节点/rw21.component";
import { RW22ModalComponent } from "./shared/任务类/正常节点/rw22.component";
import { QuickGxzxModalComponent } from "@app/pipeline/step/quick-gxzx-modal.component";
import { StepDetailModalComponent } from "@app/pipeline/step/step-detail-modal.component";
import { RW8ModalComponent } from "./shared/任务类/正常节点/rw8.component";
import { RW23ModalComponent } from "./shared/任务类/正常节点/rw23.component";
import { RW24ModalComponent } from "./shared/任务类/正常节点/rw24.component";
import { RW26ModalComponent } from "./shared/任务类/正常节点/rw26.component";
import { FlexsTimelineComponent } from "./flextimeline/flex-timeline.component";
import { FlexTimelineItemComponent } from "./flextimeline/flex-timeline-item.component";
import { GY05ModalComponent } from "./shared/工艺类/正常节点/gy05.component";
import { GY06ModalComponent } from "./shared/工艺类/正常节点/gy06.component";
import { DzdSidetaskComponent } from "./planfordzd/dzd-sidetask.component";
import { PrintdzdModalComponent } from "./planfordzd/printdzd-modal.component";
import { BatchPrintModalComponent } from "./step/batch-print-modal.component";
import { RW5ModalComponent } from "./shared/任务类/正常节点/rw5.component";
import { RW6ModalComponent } from "./shared/任务类/正常节点/rw6.component";
import { RW7ModalComponent } from "./shared/任务类/正常节点/rw7.component";
import { GY03ModalComponent } from "./shared/工艺类/正常节点/gy03.component";
import { ZL5ModalComponent } from "./shared/质量类/正常节点/zl5.component";
import { ZL4ModalComponent } from "./shared/质量类/正常节点/zl4.component";
import { JjdDeliveryTasksComponent } from "./planforjjd/jjd-delivery-tasks.component";
import { BatchPrintjjdModalComponent } from "./planforjjd/batch-print-jjd-modal.component";

const COMPONENTS = [
  ActCommmonModalComponent,
  GY1ModalComponent,
  GY21ModalComponent,
  GY24ModalComponent,
  RW2ModalComponent,
  ZL1ModalComponent,
  ZL11ModalComponent,
  RW3ModalComponent,
  RW21ModalComponent,
  RW22ModalComponent,
  YL2ModalComponent,
  YL10ModalComponent,
  YL13ModalComponent,
  GXZXModalComponent,
  RW8ModalComponent,
  RW24ModalComponent,
  RW26ModalComponent,
  GY05ModalComponent,
  GY06ModalComponent,
  RW23ModalComponent,
  RW5ModalComponent,
  RW6ModalComponent,
  RW7ModalComponent,
  GY03ModalComponent,
  ZL4ModalComponent,
  ZL5ModalComponent
];

const COMPONENT_MODALS = [YL2OutModalComponent, YL10ChildModalComponent];

@NgModule({
  entryComponents: COMPONENTS,
  imports: [
    CommonModule,
    FormsModule,
    ModalModule,
    TabsModule,
    TooltipModule,
    AppCommonModule,
    UtilsModule,
    PipelineRoutingModule,
    CountoModule,
    EasyPieChartModule,
    DataTableModule,
    TableModule,
    MultiSelectModule,
    PaginatorModule,
    TreeTableModule,
    CalendarModule,
    InputTextModule,
    InputSwitchModule,
    DropdownModule,
    CalendarModule,
    BsDropdownModule.forRoot(),
    MenubarModule,
    DialogModule,
    SpinnerModule,
    CheckboxModule,
  ],
  declarations: [
    StepsComponent,
    ActAbnormalModalComponent,
    FlexsComponent,
    FlexItemComponent,
    ActBaseModalComponent,
    WarningTimeModalComponent,
    ...COMPONENTS,
    ...COMPONENT_MODALS,
    QuickGxzxModalComponent,
    StepDetailModalComponent,
    FlexTimelineItemComponent,
    FlexsTimelineComponent,
    DzdSidetaskComponent,
    PrintdzdModalComponent,
    BatchPrintModalComponent,
    JjdDeliveryTasksComponent,
    BatchPrintjjdModalComponent,
  ],
})
export class PipelineModule {}
